
#pragma once

//
// Base view class
//

class View
{
public:

	// Constructor
	View() { }

protected:

	// Destructor
	virtual ~View() {}

	// Called when entering the process
	virtual void Enter() {}

	// Processes one frame for the gui,
	// Returns which ever view should be next, 0 for exit
	virtual View *Process() = 0;

	// Renders the gui
	virtual void Render() = 0;

	friend class Application;
};